import {FsmState} from "../Fsm/FsmState";
import {IProcedureManager} from "./IProcedureManager";
import {IFsm} from "../Fsm/IFsm";
import ccclass = cc._decorator.ccclass;
type ProcedureOwner = IFsm<IProcedureManager>;
@ccclass("ProcedureBase")
export abstract class ProcedureBase extends FsmState<IProcedureManager> {
    OnInit(fsm: ProcedureOwner): void {
        super.OnInit(fsm);
    }

    OnEnter(fsm:ProcedureOwner): void {
        super.OnEnter(fsm);
    }

    OnUpdate(fsm:ProcedureOwner, elapseSeconds: number, realElapseSeconds: number): void {
        super.OnUpdate(fsm,elapseSeconds,realElapseSeconds);
    }

    OnLeave(fsm: ProcedureOwner, isShutdown: boolean): void {
        super.OnLeave(fsm,isShutdown);
    }

    OnDestroy(fsm:ProcedureOwner): void {
        super.OnDestroy(fsm);
    }

}
